package com.continuing.beef.service.bill;

import java.math.BigDecimal;
import java.util.List;

import com.continuing.beef.domain.BillInfo;
import com.continuing.common.core.domain.model.LoginUser;

/**
 * 账单信息Service接口
 *
 * @author batata
 * @date 2021-09-26
 */
public interface IBillInfoService {
    /**
     * 查询账单信息
     *
     * @param id 账单信息主键
     * @return 账单信息
     */
    public BillInfo selectBillInfoById(Long id);

    /**
     * 查询账单信息列表
     *
     * @param billInfo 账单信息
     * @return 账单信息集合
     */
    public List<BillInfo> selectBillInfoList(BillInfo billInfo);

    /**
     * 新增账单信息
     *
     * @param billInfo 账单信息
     * @return 结果
     */
    public int insertBillInfo(BillInfo billInfo);


    int insertBillInfo(BillInfo billInfo, LoginUser loginUser);


    /**
     * 修改账单信息
     *
     * @param billInfo 账单信息
     * @return 结果
     */
    public int updateBillInfo(BillInfo billInfo, LoginUser loginUser);

    /**
     * 批量删除账单信息
     *
     * @param ids 需要删除的账单信息主键集合
     * @return 结果
     */
    public int deleteBillInfoByIds(Long[] ids);

    /**
     * 删除账单信息信息
     *
     * @param id 账单信息主键
     * @return 结果
     */
    public int deleteBillInfoById(Long id);


    /**
     * 判断是否超出
     *
     * @param sum         金额
     * @param sumDiscount 优惠金额
     * @param sumPayment  付款金额
     * @return /
     */
    boolean isExceed(BigDecimal sum, BigDecimal sumDiscount, BigDecimal sumPayment);

    /**
     * 判断是否相等
     *
     * @param sum         金额
     * @param sumDiscount 优惠金额
     * @param sumPayment  付款金额
     * @return /
     */
    boolean isEquality(BigDecimal sum, BigDecimal sumDiscount, BigDecimal sumPayment);

}
